# ai_processing/topic_classifier.py
import re
from typing import List, Dict

# 主题关键词词典
TOPIC_KEYWORDS = {
    '新品上市': ['上市', '发布', '亮相', '预售', '首发', '正式上市'],
    '战略合作': ['合作', '签约', '合资', '联盟', '战略', ' partnership'],
    '技术发布': ['技术', '研发', '创新', '专利', '突破', '智能驾驶', '自动驾驶'],
    '销量数据': ['销量', '销售', '月销', '季度', '财报', '增长', '下降'],
    '财报发布': ['财报', '财务', '收入', '利润', '营收', '季度报告'],
    '政策法规': ['政策', '法规', '标准', '国标', '补贴', '新能源政策']
}

def classify_topic(text: str) -> str:
    """基于规则的主题分类，只返回最高分的主题名称"""
    topics = []
    text_lower = text.lower()

    for topic, keywords in TOPIC_KEYWORDS.items():
        score = 0
        for keyword in keywords:
            if keyword in text_lower:
                score += 1

        if score > 0:
            topics.append({
                'topic': topic,
                'score': score,
                'level': 'primary' if score >= 2 else 'secondary'
            })

    # 按分数排序
    topics.sort(key=lambda x: x['score'], reverse=True)

    # 只返回最高分的主题名称
    if topics:
        return topics[0]['topic']
    else:
        # 如果没有匹配到主题，返回默认主题名称
        return '行业动态'
